function fig = PlotXe129FID(obj, fidData)
    if nargin == 1
        fidData = obj.SystemInfo.Xe129FID;
    end
    
    fidSignal = fidData.signal.getNodeData(1);
    fidEnvelope = fidData.signal.getNodeData(2);
    
%     [~, idx] = findpeaks(abs(diff(diff(fidEnvelope.y))), 'NPeaks', 1, 'SortStr', 'descend');
    idx = 1;
    
    fig = figure( 'Name', sprintf('Xe129 FID [%s]', datestr(fidData.timestamp)), 'WindowStyle', 'Docked'); 
    
    ax1 = subplot(1, 2, 1, 'Parent', fig);
    plot(ax1, fidSignal.x, fidSignal.y, '-',  fidEnvelope.x,  sqrt(2.0)*fidEnvelope.y/100, 'b.', ...
              fidEnvelope.x(idx:end), sqrt(2.0)*fidData.fitting.result(fidEnvelope.x(idx:end))/100, 'r-')
    legend(ax1, 'Envelope', 'Exp. Fitting', 'FID Signal', 'Location', 'best');
    xlim(ax1, minmax(fidSignal.x(:)'));
    xlabel(ax1, 'Time (s)'); ylabel(ax1, 'FID Signal (V)');
    title(ax1, sprintf('\\tau = %4.2f s', fidData.fitting.tau), 'Interpreter', 'tex');
    grid on
    
    ax2 = subplot(1, 2, 2, 'Parent', fig);
    plot(ax2, fidData.fitting.fft.fList, fidData.fitting.fft.value, 'b.-');
    xlabel(ax2, 'Frequency (Hz)'); ylabel(ax2, 'FFT Abs');
    title(ax2, sprintf('f_0= %6.4f Hz', fidData.fitting.fft.center), 'Interpreter', 'tex');
    xlim(ax2, minmax(fidData.fitting.fft.fList(:)')); grid on;
end

